<?php
/**
 * Flan 的 Debug
 *
 * @author Flan fzm010@hotmail.com
 * @version 2.0.0 2012-8-6
 * 
 * 
 * 在线debug的公功能
 * 
 * 可以通过在 url上传入debug参数，输出debug，  如 ?_debug_=^_^
 * 
 * 不过要注意， 避免搜索获取debug的地址，所以避免使用
 * 
 * 
 */

/**
 * DeBug 
 */
class flanDebug{
	
	/**
	 * debugType 0 无输出  1 输出  2隐藏输出
	 */
	private $m_nDebugType = 0;
	
	
	
	/**
	 * 输出<br />
	 * 
	 * @access public 
	 * @return String 
	 */
	public function br() {
		if ($this->m_nDebugType == 0){return false;}
		if ($this->m_nDebugType == 2){
			echo "\r\n";
		} else {
			echo '<br />';
		}
	}
	
	/**
	 * 输出段分割标记
	 * 
	 * @access public 
	 * @param String 段名
	 * @return String html
	 */
	public function title($sTitle){
		if ($this->m_nDebugType == 0){return false;}
		$this->br();
		if ($this->m_nDebugType == 2){
			echo '<div style="display:none;">';
		}
		
		echo '===============================';
		echo $sTitle;
		echo '===============================';
		
		if ($this->m_nDebugType == 2){
			echo '</div>';
		}
		$this->br();
	}
	
	/**
	 * 输出变量
	 * 
	 * @access public 
	 * @param String $sTitle 变量名称
	 * @param String $oObject 变量
	 * @param int $nThisDebugType 当前 Debug类型
	 * @return String html
	 */
	public function output($sTitle, $oObject, $nThisDebugType=0) {
		
		$nDebugType = $this->m_nDebugType;
		if ($nThisDebugType != 0){
			if ($nThisDebugType == 1){
				echo '<br />';
			} else if ($nThisDebugType == 2){
				echo "\r\n";
			}
			$nDebugType = $nThisDebugType;
		}
		if ($nDebugType == 0){return false;}
		
		$this->br();
		if ($nDebugType == 2){
			echo '<div style="display:none;">';
		}
		
		echo $sTitle.':';
		
		if (is_array($oObject)){
			print_r($oObject);
		} elseif (is_object($oObject)){
			var_dump($oObject);
		} else {
			echo $oObject;
		}
		
		if ($nDebugType == 2){
			echo '</div>';
		}
	}
	
	
	/**
	 * 输出<br />
	 *
	 * @access public
	 * @param int debugType
	 * @return void
	 */
	public function f_set($nDebugType){
		$this->m_nDebugType = $nDebugType;
	}
	
}